home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 4 / United Public Domain Gold 4.iso / fredfish / ff.0669.dms / ff.0669.adf / VirusChecker / Virus_Checker.doc < prev    next >
Text File  |  1992-05-21  |  60KB  |  1,238 lines

  1. ************************************************************************
  2.  
  3.                         Virus_Checker Documentation
  4.  
  5.                              by John Veldthuis
  6.                       Member of SHI Anti Virus Group 
  7.  
  8. ************************************************************************
  9.  
  10.  
  11. DISTRIBUTION:
  12.  
  13. Virus_Checker is a freely distributable, copyrighted piece of
  14. software. You do not have to pay money to use it, and may upload it
  15. wherever you choose, but you are not allowed to sell Virus_Checker
  16. for profit, or include Virus_Checker on a disk which is sold for
  17. profit, without the author's (John Veldthuis) permission.  Commodore
  18. have this permission already.
  19.  
  20. Money is not solicited but would be welcome. I can be contacted at
  21. the address below.
  22.  
  23. Please send me any more new viruses so I can update Virus_Checker,
  24. but please don't send a letter asking for a copy without sending me
  25. at least a disk to send it back on. I just cannot afford to do this.
  26.  
  27.     John Veldthuis
  28.     21 Ngatai Street
  29.     Manaia, Taranaki
  30.     New Zealand
  31.     Phone  (0624) 8409
  32.  
  33. Email addresses:
  34.  
  35.     FIDO 3:771/400.10
  36.     USENET johnv@tower.actrix.gen.nz
  37.  
  38.  
  39. ABOUT SAFE HEX INTERNATIONAL
  40.  
  41.  
  42. If  you   know  a  virus  programmer  you  can  get  a reward of $ 1000 for
  43. supplying  his  name  and  address.  The fact is that the law punishes data 
  44. crime very severely. (5 years in jail in most countries).
  45.  
  46. We  are an international group with more than 250 members  who have started 
  47. trying to stop the spread of virus. Let me give you some example:
  48.  
  49.  
  50.         1. Our motto is: "Safe Hex", who dares do anything else today?".
  51.     2. A virus bank containing all well known virus killer programmes.
  52.     3. We help people to get money back lost by virus infection.
  53.         4. We  write articles about virus problems for 8 magazines.
  54.         5. We release the newest and the best virus killers around.
  55.         6. We have more than 20 "Virus Centers" worldwide  where you 
  56.            can get free virus help by phoning our "Hotline", and the
  57.            newest killers translated n your own language at very little
  58.            cost.
  59.  
  60. For more information contact:
  61.  
  62.         SAFE HEX INTERNATIONAL            (Please  send  a "Coupon-Response 
  63.         Erik Loevendahl Soerensen         International" and a self addres-
  64.         Snaphanevej 10                    sed  envelope, if you want infor-
  65.         DK-4720 Praestoe                  mation about SHI by letter).
  66.         Denmark                             
  67.         Phone: + 45 55 99 25 12
  68.         Fax  : + 45 55 99 34 98
  69.  
  70.  
  71. INSTALLATION:
  72.  
  73. To run Virus_Checker once, either type it's name into a CLI window (while
  74. the program is in the current directory), or double-click on it's icon
  75. from the Workbench.  The program will be active until you quit it or
  76. reset your computer.
  77.  
  78. Installing Virus_Checker so that it will be active all the while your
  79. computer is running is a good idea.  This is because viruses can be on
  80. any disk you insert into any disk drive.  With Virus_Checker always
  81. active, you will be protected.
  82.  
  83. Under 1.3, to install Virus_Checker so that it will be run whenever
  84. you reset your computer, edit your startup-sequence to include simply
  85. "Virus_Checker".  The program will have to be either in the root
  86. directory of the disk you are booting off of, or in the C: directory,
  87. for this to work.
  88.  
  89. Under the 2.0 operating system, installation is much easier.  All you
  90. have to do is drag the icon for Virus_Checker into the WBStartup
  91. drawer on your Workbench disk (or your boot partition if you use a
  92. hard disk), and Virus_Checker will automatically be loaded when the
  93. Workbench is loaded.
  94.  
  95.  
  96. NOTICE FOR USERS OF FILE PACKERS AND CRUNCHERS:
  97.  
  98. If you use a program such as PowerPacker to make your files smaller
  99. then be aware that you must check these files before you crunch them.
  100. If the file is infected and you crunch them then VC will not find the
  101. virus in the file and each time you use that file it will infect your
  102. machine.  VC will still detect the virus in memory and remove it okay.
  103. So if you get VC telling you your memory is infected but you cannot
  104. find it on any disks then start unpacking any of these files and
  105. check them UNPACKED.
  106.  
  107.  
  108. ENFORCER USERS
  109.  
  110. Just a quick note for people who use the program called enforcer.
  111. Virus_Checker will cause Enforcer hits when it does it's memory scan. There
  112. is no way around this as it is the only way to detect a couple of viruses.
  113. For each low memory read Virus_Checker will cause 2 enforcer hits. One for
  114. the read and one for the zero that was returned. This will happen only when
  115. Virus_Checker starts up and when you cause it to do a full memory scan via
  116. the menu or 'm' key.
  117. There should be 4 enforcer hits. The reads are from location $20 and
  118. location $6c. The other 2 will depend on your setup.
  119.  
  120.  
  121. WORKBENCH 2.0 USERS BEWARE
  122.  
  123. Workbench 2.0 now looks at and acts on the protection flags on each file.
  124. If you have a file that is read protected then Virus_Checker will not be
  125. able to check this file. WB1.3 ignores most of these flags and will happily
  126. read a read protected file.
  127. I got a disk with the BSG9 virus on it and wondered why VC would not pick
  128. it up. I finally did a list on it and saw it only had the delete flag on.
  129. After un-read protecting it VC picked the file up okay.
  130.  
  131. UPDATE
  132. From version 6.05 VC will warn you if it finds a file that is write
  133. protected. This will allow you to use the Shell command protect to
  134. unprotect the file. Just use 'protect filename +r' without the 's and this
  135. will allow VC to read the file when you scan it again.
  136.  
  137.  
  138. FRENCH USERS
  139.  
  140. Someone has gone to the trouble of translating the Virus_Checker docs into
  141. French. If you wish to get them then please read the following
  142.  
  143. You can get the French doc from AUGL or order it for 20 French Francs at:
  144.     BUGSS
  145.     4, Place de L'Aube
  146.     33170 GRADIGNAN
  147.     FRANCE
  148. Direct any questions to berger@geocub.greco-prog.fr
  149.              or berger@platon.greco-prog.fr
  150.  
  151. COMMAND LINE OPTIONS:
  152.  
  153. The syntax is:
  154.  
  155.     Virus_Checker [-l###] [-t###] [-w###] [-b] [-q] [-i] [-n] [-m] [dirname]
  156.  
  157.     -l### tells Virus_Checker how far from the left edge of the 
  158.         screen to open the Virus_Checker window.
  159.  
  160.     -t### tells Virus_Checker how far down from the top edge of 
  161.         the screen to open the Virus_Checker window.
  162.  
  163.     -w### tells Virus_Checker how wide you want the window. It has 
  164.         a maximum size of 386 pixels and a minimum of 200.  Any 
  165.         numbers out of this range are ignored.
  166.  
  167.         This is ignored by Workbench 2.0 as there is really no need
  168.         for it due to being able to 'pop' the window up when you
  169.         want it and hide it when you don't want it.
  170.  
  171.     -b tells Virus_Checker to send its window to the back of all the 
  172.         other open windows.
  173.  
  174.     -n tells Virus_Checker not to open a window. It will check memory 
  175.         and disks inserted but you will have to use the ARexx port 
  176.         or the commodities 'Exchange' program (or the hotkey) to 
  177.         get it to scan the whole disk for Link/File viruses or to
  178.         view the user interface.  To stop VC, run VC again,  use 
  179.         the ARexx port, or send it a Kill command from the
  180.         commodities 'Exchange' program.
  181.  
  182.     -q tells Virus_Checker to check all memory, files, and disks for 
  183.         viruses, then exit.  To check the dh0: partition and exit,
  184.         do the following:  "Virus_Checker -q dh0:".  This will check 
  185.         memory, disks, files, and dh0:, then exit.
  186.  
  187.     -i tells Virus_Checker not to put up a requester when it can't read
  188.         the bootblock of a disk.
  189.  
  190.     -m tells Virus_Checker to watch the file s:startup-sequence for any
  191.         changes. Some viruses will change this file and VC will
  192.         catch it. (Only works under WB2.0 and above)
  193.       Bug report
  194.         There seems to be a bug that if the file is changed VC will
  195.         pick it up okay. but if another file is changed in the S:
  196.         directory then AmigaDOS tells VC the startup-sequence has been
  197.         changed. It is okay again after    that. You have been warned
  198.  
  199.     dirname is the directory/file you want checked for File Viruses on 
  200.         startup.  An example to open the window at x/y position of 
  201.         200/100 and check DH0: is: "Virus_Checker -l200 -t100 dh0:".
  202.  
  203. For the window coordinates, any values outside the size of the WB
  204. screen are ignored and any non numerical values are ignored. There
  205. must be no spaces between the options and the numbers. Options may be
  206. given in any order.
  207.  
  208. If Virus_Checker is already running, and you invoke it again from the
  209. command line, you will be asked if you want to kill it.  If you answer
  210. yes, the already-running copy will be removed from memory, and you will
  211. have no Virus_Checker running.  This will work not if you RUN Virus_Checker,
  212. as you have you be able to answer it's question.
  213.  
  214.  
  215. THE WORKBENCH STARTUP:
  216.  
  217. SPECIAL NOTE:
  218.  
  219. If Virus_Checker is not run from Workbench it will look for the file
  220. S:VIRUS_CHECKER.INFO  This is just a standard workbench info file and can
  221. be used as described in the next section. This is to allow 1.3 users who
  222. run VC from their startup-sequence to config VC easily. It will work for
  223. 2.0 users as well. I have done it this way because it is too hard to find
  224. where a program ran from under 1.3. This way I only have to look for 1 file
  225. in one directory.
  226. To use it add the stuff you want under Workbench and save it. Then copy the
  227. Virus_Checker.info file to the S: directory.
  228.  
  229. Support for the icon stuff has now been put in. These will override the
  230. default settings and also the settings in the S:Virus_Checker.config file.
  231. It will only affect those things that are given in the ICON. The rest will
  232. be left as default or as the config file sets them.
  233.  
  234. The things that you can put in via the Information menu on Workbench are as
  235. follows. These will be used if VC is started by Workbench
  236. HOTKEY is only used by WB2.0
  237.  
  238.  
  239. HOTKEY=string        /* HOTKEY=lcommand shift del            */
  240. LEFT=num        /* LEFT=150                     */
  241. TOP=num            /* TOP=25                    */
  242. WINDOW=ON/OFF        /* WINDOW=ON or WINDOW=OFF            */
  243. RESIDENT=ON/OFF        /* RESIDENT=ON or RESIDENT=OFF            */
  244. IGNOREBBERROR=ON/OFF    /* Ignore BootBlock Read Error            */
  245.             /* use IGNOREBBERROR=OFF to turn requester off    */
  246. WATCHSS=ON/OFF        /* WATCHSS=ON or WATCHSS=OFF            */
  247. DF0=ON/OFF        /* DF0=ON or DF0=OFF                */
  248.  |
  249.  V        ;If Off VC will not check BootBlock or startup-sequence
  250. DF3=ON/OFF
  251. FULLCHECKDF0=ON/OFF    /* FULLCHECKDF0=ON or FULLCHECKDF0=OFF    */
  252.      |
  253.      V        ;If ON VC will scan all files on the inserted disk.
  254. FULLCHECKDF3=ON/OFF
  255.  
  256.  
  257. IN ALL CASES DO NOT USE THE QUOTE MARKS " or ' in any place. VC can see the
  258. spaces between strings without them.
  259.  
  260.  
  261. THE AREXX INTERFACE:
  262.  
  263. VC has an ARexx port, which means you can send VC commands using the
  264. REXX language, available from your Amiga dealer, or as part of the 2.0
  265. Operating System.  The port name is "Virus_Checker". Be aware that
  266. case is important and ARexx will not find it if the name is not spelled
  267. right.  Here is an example ARexx program that talks to VC:
  268.  
  269.     /* ARexx programs must start with a comment */
  270.  
  271.     address 'Virus_Checker'    /* Talk to Virus_Checker          */ 
  272.     'checkdrive\df0:'          /* Make virus_Checker check df0:     */
  273.                    /* for viruses              */ 
  274.     'scanforsaddam\df0:'       /* Make VC check df0: for Saddam     */
  275.                    /* virus damage            */
  276.     'quit'               /* Make Virus_Checker shut down.    */
  277.         'drive\df1: off'       /* Turn off df1: from being scanned  */
  278.  
  279. Notice the '\' between the command and the drive name in the middle
  280. examples. This must be put between all commands and their options.  'quit'
  281. does not take an option so does not need the '\' character there.
  282. Virus_Checker will take the following commands:
  283.  
  284.     checkdrive\drivename      Check drive 'drivename' for file viruses.
  285.     scanforsaddam\drivename   Check drive (DF0:-DF3) for Saddam damage.
  286.     quit                      Make Virus_Checker shut down.
  287.     saveconfig                Save the s:Virus_Checker.file file
  288.         window\option             Open or Close window (Option = on or off)
  289.     drive\df?: option         Turn on/off Drive scan (Option = on or off)
  290.     resident\option          Turn on/off Resident flag ""      ""  ""
  291.     checkfile\device:dir/filename
  292.     checkbootblock\df?:       Check the Bootblock in df? for viruses
  293.  
  294. Special note for 'checkfile' command.
  295. This one turns off any requesters while doing it's work. If the command
  296. OPTIONS RESULTS is used it will return RESULT if no virus found or if a
  297. virus is found then the string VIRUSNAME Virus was/is present in the file.
  298. This does not mean the virus is gone as there may have been errors trying
  299. to remove the virus.
  300. This is really for BBS users who want to check files as they come in.
  301. You could write an arexx script to search files and log any that come up
  302. with viruses. Later after findong which ones where infected you would run
  303. VC over them again via the main menu thus making sure they where clear.
  304.  
  305. CheckBootBlock command
  306. This one also needs the options results and returns messages.
  307. If the disk is clear or you give it a number outside the range of df0: to
  308. df3: it will return 'Okay', if VC had trouble reading the disk the message
  309. returned is 'ERROR reading BOOTBLOCK', if the bootblock is Not the normal
  310. one then 'NON-STANDARD BOOT CODE' is returned.  If the Bootblock is
  311. infected then the virus name will be returned.  At present there is no way
  312. to clear the virus from Arexx but I am working on it.  Requesters are
  313. disabled while this is done.
  314.  
  315.  
  316. VIRUS_CHECKER OPERATION:
  317.  
  318.  Upon running Virus_Checker, it will first check your memory for
  319. viruses and tell you if any were detected.  They will either be
  320. removed or disabled.  Next all disks in the floppy drives will be
  321. checked.  Any disk put in any drive (df0: to df3:) will be checked.
  322.  
  323. If Virus_Checker finds and disables the LAMER virus in memory, the
  324. machine may guru.  Once the machine is reset, however, the virus
  325. should be gone.
  326.  
  327.  
  328. THE 2.0 USER INTERFACE:
  329.  
  330. Many Thanks goes to Steve Tibbett for designing and most of the C code for
  331. this section. All I did was translate it into assembly and intergrate it
  332. into Virus_Checker.
  333.  
  334. This section describes the user interface that Virus_Checker uses
  335. when Kickstart 2.0 is detected in your computer.  This section does
  336. not apply for users with Kickstart 1.3.
  337. Kickstart 1.3 users can see the special note for using the Config file
  338. below.
  339.  
  340. Virus_Checker can be used either with a window open, or with no window
  341. open.  When used with the window closed, Virus_Checker will only show
  342. itself when it has something to tell you about.  If you insert a disk
  343. containing a virus, Virus_Checker will pop up a requester telling you
  344. about it, and give you some options to deal with it.
  345.  
  346. The normal Virus_Checker user interface can present itself in two
  347. forms.  One is the 'TitleBar Window', where only the close gadget,
  348. the depth gadget, the Zoom gadget, and the program name are visible. 
  349.  
  350. If you click the Zoom gadget, Virus_Checker's window will change into
  351. a window occupying nearly half a normal 640x200 Workbench screen.
  352. This window is broken up into three sections:  The Preferences
  353. section, the Files section, and the Drives seection.
  354.  
  355. In the Preferences section, you can tell Virus_Checker whether it
  356. should open a window or not, whether the window should be a Backdrop
  357. window, and whether Virus_Checker should quit immediately when run,
  358. or whether it should stay resident.  You can also set the window
  359. position, and the hotkey that will call Virus_Checker when you want
  360. to open it's window or pop it to the front.  (The hotkey format is
  361. described in the AmigaDOS 2.0 manual, in the section on the
  362. commodities exchange).
  363.  
  364. THE DEFAULT HOTKEY is Left-Amiga Shift del
  365.  
  366. The Files section is where you list the drives or directories that 
  367. Virus_Checker will check when you click the Check button.  If you 
  368. 'Add' DF0: and DF1: to the list, then choose Check, then
  369. Virus_Checker will check all the files on both DF0: and DF1: for file
  370. viruses.
  371.  
  372. The Drives section lets you specify which of your floppy disk drives
  373. will automatically be checked for bootblock and file viruses when you
  374. insert a disk. If you have a program like CrossDOS and you don't want
  375. Virus_Checker looking at the msdos disks then simply disable it and
  376. Virus_Checker will never look at that drive again. Unless you enable it
  377. again.
  378.  
  379. The Second row of Drive gadgets turn on and off the automatic scanning of
  380. the entire disk. These are disabled by default. If you turn them on, then
  381. Virus_Checker will scan the entire disk every time you insert one.
  382. Checking for file viruses takes some time, so you may not want this on for
  383. a drive that you are constantly moving disks in and out of.
  384. The state of these gadgets is also saved in the Config file.
  385.  
  386. Any of the Gadgets that have text with an UnderScore beneath then can be
  387. accessed by simply pressing the that key on the keyboard.
  388. For example. If you wished to change the Hotkey you will notice that the H
  389. in HotKey is Underlined. This means simply by pressing the 'h' key that
  390. gadget will become active.
  391.  
  392. The options that you set in the user interface can be saved to disk
  393. using the Save button.  The options are saved to the file
  394. "S:Virus_Checker.Config", and are read from there whenever the
  395. program is loaded.
  396.  
  397. SPECIAL NOTE FOR 1.3 USERS:
  398.  
  399. There is no way at present to set the configuration via the window under
  400. 1.3. You can still save the Configure file and alter it via a binary file
  401. editor such as NewZap. Here is the format of the file.
  402. Bytes 0  -  3  VC header ID.  This must be the characters VCID.
  403. Bytes 4  -  5  Window X position as a Binary number
  404. Bytes 6  -  7  Window Y position as a Binary number
  405. Byte  8           Use Window       0 = no window, 1 = open window
  406. Byte  9        Window Backdrop  0 = Normal window, 1 = Backdrop window
  407. Byte 10        Stay Resident    0 = Check Mem,disks, then exit. 1 = normal Use
  408. Byte 11        CheckDrives      This is a bitmap of drives to check for BB
  409.                 1 = check drive 0
  410.                 2 = check drive 1
  411.                 4 = check drive 2
  412.                 8 = check drive 3
  413. Byte 12        CheckDrives2     This is a bitmap for checking the entire
  414.                 disk when inserted
  415.                 1 = check drive 0
  416.                 2 = check drive 1
  417.                 4 = check drive 2
  418.                 8 = check drive 3
  419.         When using the 2 above add togeather the numbers to create
  420.         the value that goes in. For example if you want drives
  421.                 0,2 and 3 checked but 1 left alone the number would be
  422.         1 + 4 + 8 = 13. Put this number in the byte 11.
  423. Byte 13        Interface open            (Only of use for WB2.0)
  424. Byte 14 - 77    HotKey name               (Only of use for WB2.0)
  425. Byte 78 - ??    Names of drives to check  (Only of use for WB2.0)
  426.  
  427.  
  428. KEYSTROKES:
  429.  
  430. The Following keys will activate the following functions, when typed
  431. into the Virus_Checker window:
  432.  
  433. s -    Will activate the Scan mode
  434. m -    Will immediately do a complete memory scan (same as startup)
  435. f -    Will activate the Saddam Disk Scan (used to fix Saddam virus damage)
  436. 0 - 3  Will check the First File in startup-sequence and bootblock on disk
  437.        in drive which matches number
  438.  
  439. There are also some options on the menu (hold the right mouse button
  440. to get to the menus) which have keyboard-equivalent shortcuts.  These
  441. are next to the inverse A on the menu.
  442.  
  443. LINK/FILE VIRUS CHECK:
  444.  
  445. If you want to check a disk for Link/File viruses then put the disk in
  446. any drive. Make sure the Virus_Checker window is active and use the right
  447. mouse button to bring up the Project Menu. Select the "Link/File Scan"
  448. and release the mouse button.  An alternative way is to just press
  449. the 's' key on the keyboard.
  450.  
  451. This will bring up a requester asking you which drive to check. Enter
  452. the drive name in the box, eg.  DF0:, DH1:,RAD:  etc. Under WB2.0 you
  453. can also use the "Use Requester" option.  It will then check all the
  454. files on that drive.  You can also enter directories if you want to
  455. eg, c:  df0:c, df0:libs etc.
  456.  
  457. When Virus_Checker is scanning the disk and you know that a directory
  458. is clear and don't want to check it press control-d in the window
  459. with the filenames and Virus_Checker will ignore that directory and
  460. go back up one level.
  461.  
  462. If you want to stop the check completely press control-c in the
  463. window with the filenames and Virus_Checker will print a break
  464. message then stop scanning the disk and go back to normal scanning.
  465.  
  466. If Virus_Checker brings a requester up that says a program just run
  467. has infected your memory with the Xeno Virus, it has already disabled
  468. it.  You should immediately check all files on the disks that are in
  469. the drives at that time.  This means that a program that you just ran
  470. or a program some other program just ran is infected with the virus
  471. and all files should be checked to find out which one it was.
  472.  
  473. With viruses which use a RomTag I have decided to clear out all
  474. RomTags to make sure I remove the Viruses from the list.  In doing
  475. this you will lose things like Recoverable ram disks such as RAD:,
  476. VD0: etc. If you have a virus make sure that you save anything in the
  477. ram disks that you want before rebooting.  The ramdisks and others
  478. will disappear on a reboot.  My policy is better safe than sorry.
  479.  
  480. BRAINFILE ADDITION:
  481.  
  482. When VC finds a Non-Standard bootblock it will bring up 4 gadgets.
  483. One of these gadgets is Learn.  Pressing this will allow VC to
  484. remember this BootBlock and not bother you again with it.  To do this
  485. VC writes a file called VCBrainFile to the S: directory.  If you have
  486. a single drive this will invoke a requester asking that Volume
  487. something be put in the drive.  This will then save to the file.  On
  488. Startup VC will check for the file in the S: directory and read it if
  489. it is there.  If not it will carry on without it.  If you get an error
  490. then VC will tell you about it and will happily write over the file
  491. next time.
  492.  
  493.  
  494.  
  495. NON-STANDARD BOOT CODE:
  496.  
  497. When Virus_Checker brings up a Requester that says the disk has
  498. non-standard boot code, this means that the code in the boot block is
  499. not what should be there.  This does not mean that it is a virus as
  500. many games use copy protection in their boot blocks, and there are many
  501. bootblocks that do interesting things, that are not viruses.  You
  502. should however be cautious if it is not a game.  Do not replace the
  503. boot block if you are not sure.  If something strange happens then
  504. please send a copy of the disk to me so that I can check it out.  To
  505. determine if an unknown bootblock is likely a virus:
  506.  
  507. 1.      Format a blank disk so you know it is clear.
  508. 2.      Make sure all disks except the one just formatted are write protected.
  509. 3.      Boot from the disk that you suspect.
  510. 4.      Place formatted disk in drive zero and then reboot.
  511. 5.      Take disk out of drive zero and turn off computer for about 30 secs.
  512. 6.      Run the Virus_Checker program. If the Virus_Checker finds
  513.         non-standard boot code on the newly formatted disk, you have found a
  514.         new virus.  Please send it to me.
  515.  
  516.  
  517. VIRUSES VIRUS_CHECKER DEALS WITH:
  518.  
  519. Virus_Checker deals with many bootblock viruses, some of which are not
  520. listed here.  The ones that are listed here describe all the types of
  521. bootblock viruses, so listing all the rest of them would be redundant.
  522.  
  523. SCA:
  524.     The SCA is the simplest virus to deal with, as it's not actually
  525.     DOING anything except hiding in memory, until you reboot.  We just
  526.     look at CoolCapture and fix it to get it out of RAM.
  527.  
  528. AEK:
  529.     This is a clone of the SCA virus and we get rid of it in the same
  530.     manner.
  531.  
  532. LSD:
  533.     Another SCA clone and uses the same code.
  534.  
  535. BYTE BANDIT:
  536.     The Byte Bandit virus takes the DoIO() vector and re-directs it
  537.     through itself.  Thus, any attempt to read or write the boot block
  538.     (ie, AmigaDOS trying to figure out what kind of disk it is) results
  539.     in the BB writing itself onto that disk.  We couldn't just rewrite
  540.     the boot block, we have to get him out of RAM first.  This virus also
  541.     has an interrupt that crashes the machine every 5 minutes or so after
  542.     it's infected a few of your disks. Ow. It stays in memory not via the
  543.     Capture vectors, but by a Resident module. When machine looks crashed
  544.     press these keys at the same time from left to right LAlt, LAmiga, 
  545.     Space, RAmiga, RAlt.  This will restore things for another 5 minutes.
  546.  
  547. REVENGE:
  548.     Basically, a Byte Bandit clone except it will bring up an obscene
  549.     pointer a few minutes after you reboot.  We treat it much like the
  550.     byte bandit.
  551.  
  552. BYTE WARRIOR
  553.     Jumps right into 1.2 Kickstart.  Won't work under 1.3.  Hangs around 
  554.     via Resident struct, doesn't do any damage.
  555.  
  556. NORTH STAR/STARFIRE:
  557.     Like SCA, hangs around via CoolCapture, killing CoolCapture kills the
  558.     North Star.
  559.  
  560. OBELISK SOFTWORKS CREW:
  561.     Hangs around via CoolCapture, also watches reads of DoIO() (but 
  562.     doesn't infect EVERY disk - only ones you boot from).
  563.  
  564. IRQ:
  565.     This is the FIRST Non-Bootblock Virus.  It copies itself from place
  566.     to place via the first executable program found in your
  567.     startup-sequence.  It SetFunction's OldOpenLibrary(), has a
  568.     KickTagPtr, and lives in the first hunk of an infected program.
  569.  
  570. PENTAGON CIRCLE:
  571.     This one looks at the DoIO vector, and has a CoolCapture vector. It
  572.     will write itself over any virus inserted, but not onto anything
  573.     else. No danger, easy to eliminate.  Holding left button while
  574.     booting with this one shows different screen colour, but doesn't get
  575.     rid of it.
  576.  
  577. HCS:
  578.     Hooks into the System Z protector.  This is another virus
  579.     protector that can write itself to disks. Anything that spreads
  580.     itself, under any name, is a virus.  Doesn't do anything except
  581.     during a reboot, then examines disks and writes over viruses.
  582.  
  583. DISK-DOKTORS:
  584.     This is another virus which looks at the DoIO routine for the reading
  585.     of any bootblocks.  If it finds one it will rewrite a copy of its
  586.     code to it if it can.  This one also patches into the Vertical Blank
  587.     interrupt and seems to format your disk after a certain number of
  588.     interrupts (can't be sure though).The nasty bit is it also creates a
  589.     task called clipboard.device which spends its life copying itself
  590.     through memory fragmenting the memory into small blocks.  Calls ROM
  591.     CODE direct so won't work under V1.3.  We restore the DoIO routine,
  592.     the Vert Blank interrupt and RemTask the clipboard.device.
  593.  
  594. LAMER EXTERMINATOR:
  595.     This virus was sent to me by Andrew Mercer of the Palmerston North
  596.     group. His letter said that He noticed strange things on his disks. 
  597.     On disassembling the virus I found that most of it was encrypted and
  598.     the data was encrypted randomly using the beam position of the
  599.     screen.  Thus it appears different each time.  It patches the
  600.     trackdisk.device to look at reads and writes, It patches the Sumkick
  601.     vector in exec in case someone tries to get rid of it. When it
  602.     detects a read or a write it will randomly select a sector on the
  603.     disk and will check if it is a data block.  If it is it will write
  604.     LAMER! all over the sector and rewrite it.  Some say this Virus will
  605.     write to write protected disks.  I have not had this happen to me and
  606.     I can see no special code in the disassembly to accomplish this feat.
  607.  
  608. TIMEBOMB:
  609.     This is a strange Virus. It does not insert itself into any vectors.
  610.     However it will copy itself back to the disk it came from.  When the
  611.     count gets to 2 it will wipe out the Root Directory of the boot disk
  612.     and display an alert.  If the count is over 2 it will just display an
  613.     alert.
  614.  
  615. GADAFFI:
  616.     Inserts itself into the CoolCapture vector, Uses a RomTag structure
  617.     and patches the DoIO vector. Jumps directly into the Kickstart so
  618.     will only work under V1.2 Kickstart. After 13 copies it will step the
  619.     heads of drives 0 and 1 in and out.  We simply clear all vectors and
  620.     Use the old V1.2 DoIO code entry point.
  621.  
  622. BSG9:
  623.     This is similar to the IRQ virus in that it does not live in the Boot
  624.     Block.  It operates differently.  Inserts itself into the RomTag
  625.     pointer. It then loads the program it replaced and executes it.  On
  626.     Reboot the RomTag is called.  It patches the Intuition OpenWindow
  627.     Routine to its code.  It then returns.  Once AmigaDos opens up the
  628.     CLI window the virus code gets run.  This gets the startup-sequence
  629.     file and gets the first command that is run.  It then checks if it is
  630.     already here. If not, then it moves this program from its directory
  631.     into the devs:  directory and renames it a strange name.It then
  632.     copies itself to replace the command it just moved.  A give away is
  633.     the file size.  The Virus size is 2608 bytes and there will be a file
  634.     with what looks like spaces for its name in the devs:  directory. To
  635.     get rid of it we copy the file in devs:  back to the c: directory and
  636.     rename it.  Then delete the file in the devs:  directory.  In memory
  637.     all we do is change the RT_INIT code which is run on reboot to do an
  638.     immediate RTS. The memory for the program is still used but the Virus
  639.     is disabled.  It will display a screen of its own which says:
  640.  
  641.         A Computer Virus is a disease
  642.         Terrorism is a Transgression
  643.         Software Piracy is a crime
  644.         This is the Cure
  645.         BSG9 [plus some other junk]
  646.  
  647. WAR HAWK:
  648.     This Virus installs itself into the CoolCapture Vector.  It
  649.     copies itself to the disk when the computer is warm booted.  After
  650.     every four copies it displays a message.  To get rid of it we simply
  651.     clear the CoolCapture vector.
  652.  
  653. VKILL (or AIDS):
  654.     This is another virus hidden as a Virus protector.  When booted it
  655.     copies itself to the stack area that is not used.  It then patches
  656.     the CoolCapture vector to survive a reboot.  It patches the PutMsg
  657.     vector of ExecBase to watch for BootBlock reads and writes.When it
  658.     finds one it checks it and tells you if a virus is present.If you
  659.     want to get rid of it it will copy itself to the disk.  To
  660.     remove it we Clear the CoolCapture Vector and SetFunction the
  661.     PutMsg vector
  662.  
  663. ULTRAFOX:
  664.     This one lives in the CoolCapture vector. When you reboot it will
  665.     change the DoIO vector and wait for a BootBlock read.When it finds
  666.     one and the disk is not already infected it will write itself to the
  667.     bootblock.  After every 16 copies it will put a custom copper list
  668.     which displays greetings.
  669.  
  670. PVLPROTECTOR:
  671.     This one is another bootblock protector.  When it finds a virus it
  672.     will write itself to the disk instead of a proper bootblock.  All we
  673.     do is set the RomTag to do a RTS.
  674.  
  675. REVENGE LAMER EXTERMINATOR:
  676.     This is another file virus.  It is supposed to speed up disk
  677.     operations by 800%.  This was found on a BBS and when run patches
  678.     itself into several places. It will read the s:startup-sequence file
  679.     on reboot and will edit it so that it runs itself as the program.  It
  680.     sticks out because the first line in the startup-sequence will be
  681.     blank.  When the Checker finds it look in the Root directory and you
  682.     will find what looks like a blank filename.  Virus Checker will rename
  683.     this virus for you.  You can then delete the virus and alter your
  684.     startup-sequence to get rid of the first blank line
  685.  
  686. UNKNOWN:
  687.     This is a virus that has no names anywhere and will only work
  688.     under V1.2 Kickstart.  Very easy to get rid of.
  689.  
  690. JITR:
  691.     Very mild sort of virus this one.  Only writes itself to the
  692.     BootBlock. Does nothing else.  Easily fixed by clearing the
  693.     CoolCapture vector.
  694.  
  695. MICROSYSTEMS:
  696.     Haven't got this one yet so can't tell you much about it.
  697.     Just have to restore a vector in the exec.library and clear the Exec
  698.     CoolCapture vector.
  699.  
  700. XENO:
  701.     This virus is a very nasty one in the way that it infects all
  702.     programs that can be run.  It does not need the program to be run but
  703.     even someone doing a LIST or DIR on a disk when the virus is present
  704.     will infect all those other files on disk. It patches into the
  705.     dos.library and takes over the Open(), Lock() and LoadSeg()
  706.     calls in dos. This way it can intercept the files being looked at. It
  707.     will copy itself to the start of every runnable program and alter the
  708.     file so that it still works. There is also an encrypted message which
  709.     says 'Greetings from the Xeno Virus' but I have not worked out when
  710.     this appears yet. To get rid of it from memory we have to reset the
  711.     changed vectors. To get rid of it from the file is very much harder.
  712.     First the file has to have the virus removed from the code. Then the
  713.     relocation data pointers have to be changed so that everything still
  714.     works. When Virus_Checker finds a file infected with the Xeno Virus
  715.     it will tell you which file it is and bring up a requester. You can
  716.     now check the files on drive zero for further viruses if you want.
  717.  
  718. 16 BIT CREW:
  719.     This virus does not do much and only infects disks that you
  720.     boot with. To get rid of it from memory we clear the CoolCapture
  721.     Vector and restore the DoIO vector.
  722.  
  723. NEW ALIEN BEAT:
  724.     This one will only work under Version 1.2 Kickstart as it jumps into
  725.     the ROM code directly.  To fix in memory we have to manually patch the
  726.     DoIO vector and FindResident Vector with the correct values for 1.2.
  727.     and clear the Capture vectors.
  728.  
  729. BLACKFLASH:
  730.     This virus will display a message after a certain amount of
  731.     copies of it have been made. It says that your computer is sick and
  732.     has a virus. To remove it we just restore the DoIO vector and clear
  733.     out the capture vectors.
  734.  
  735. DIGITAL EMOTIONS:
  736.     This is another tame virus.  Only infects disks when it is
  737.     rebooted. Clean out the Captures vectors and it is gone.
  738.  
  739. SCARFACE:
  740.     This takes over the BeginIO routine in the trackdisk.device
  741.     to watch for reads and writes to the disk.  When it finds one it will
  742.     write itself to the disk.  It also has a VertBlank interrupt which
  743.     will do something after a while.  I think it only reboots the machine.
  744.     It also has a romtag which we have to clear out.
  745.  
  746. TURK:
  747.     Another simple virus.  Does not do very much.  Simple to get rid of.
  748.  
  749. JOSHUA:
  750.     Again, lives in the TrackDisk BeginIO and VertBlank Interrupt. Also
  751.     has a RomTag to survive reboots. This one will display a sprite after
  752.     so many interrupts.  I am not sure what it looks like but maybe
  753.     someone wants to wait until it is triggered. It counts interrupts. It
  754.     will also infect every disk but in the drive that is not write
  755.     protected. Data in it that says something is encoded.  To remove we
  756.     simply restore the BeginIO code and VertBlank Interrupt and wipe out
  757.     the RomTag.
  758.  
  759. BUTONIC:
  760.     This is another file type virus.  It uses the DoIO vector to
  761.     check for reads to the Root Block of a disk.  It will then write the
  762.     virus to the disk and add it to the startup-sequence as the first
  763.     instruction.  The filename of the virus and its comment make it
  764.     invisible when doing a DIR but shows up with a LIST.  This
  765.     will also bring up GURU messages and change the title of the active
  766.     window to some german stuff. To get rid of it we clear the ROMTAG,
  767.     restore the DoIO vector and delete the file off the disk. You will
  768.     need to remove the blank line from the startup-sequence where the
  769.     virus was. The second version of this infects the Level 2 Interrupt
  770.     as well and uses different file names to hide itself in the
  771.     Startup-Sequence.
  772.  
  773. CENTURIONS;
  774.     Another file type virus. It hooks into the Trackdisk BeginIO() vector
  775.     and waits for reads to the boot block of a disk.  It changes the
  776.     SumKickData() vector so that it will survive a checksum.  To
  777.     get rid of it in memory we simply kill the RomTag vector, restore the
  778.     SumKickData vector and patch the trackdisk code it uses to skip over
  779.     the virus.  When it finds a read to the bootblock it will check the
  780.     write protect.  It will then find the startup-sequence and find the
  781.     name of the first command.  It then looks for the command in the root
  782.     directory, then the c directory.  Once found it adds itself to the
  783.     front of the file and is run when the startup-sequence is run again.
  784.     Signs of infection are that it adds 3916 bytes to the size of the
  785.     file it infects.  After every ten copies it will change the pointer to
  786.     a smiley face and a message will scroll across it.
  787.  
  788. CODERS NIGHTMARE:
  789.     A boot block virus.  Fairly tame this one but it will wreck copy
  790.     protected disks.  It takes over the DoIO vector waiting for reads to
  791.     track zero block 0 then it writes itself to the disk if it can.  It
  792.     has a level 2 interrupt which after a time will display a message and
  793.     then reboot the machine. To remove we just reset the DoIO and Level 2
  794.     Interrupt vectors and clear out the RomTag.
  795.  
  796. FORPIB:
  797.     Another boot block virus.  It takes over the Trackdisk BeginIO
  798.     vector and waits for reads to block 0.  Then it copies itself if it
  799.     can.  It also has a VertBlank Interrupt and after a certain time a
  800.     message will appear. (I think).  There is a bug in this in that it
  801.     tries to use a color register but it has got the wrong value in
  802.     there.  To remove just restore both vectors and remove the RomTag.
  803.  
  804. GX TEAM:
  805.     Yet another bootblock virus. This just takes over the DoIO vector and
  806.     after a certain number of copies it will bring up a requester then
  807.     guru. To remove replace the DoIO vector and clear RomTag and Capture
  808.     vectors. This virus will only work under version 1.2 kickstart.
  809.     
  810. GREMLINS:
  811.     Yes, another bootblock virus.  Sickening isn't it.  Don't know what
  812.     this one does but very easy to remove.  Just zero the Capture vectors,
  813.     restore the SumKickData vector and DoIO vector and it's gone.
  814.  
  815. KAUKI:
  816.     This boot block virus will only work under Version 1.2 kickstart.  As
  817.     I don't have it I can't tell you what is displayed but something is
  818.     displayed. Easy to get rid of.  Just clear the Capture vector and set
  819.     the DoIO vector to $FC06DC just to make sure.
  820.  
  821.  
  822. SADDAM virus
  823.     This is a file type file that hides itself as the Disk-Validator. 
  824.     The disk on which it came was unvalidated so AmigaDOS loaded
  825.     it to try and validate the disk.  This causes the virus to run and
  826.     infect your machine.  It does infect a lot of vectors that need fixing
  827.     when it is found.  I just wipe it off the disk and it is left to the
  828.     user to put a new Disk-Validator on the disk.
  829.  
  830.     It will change the root block BitMap pointer so that if the virus is
  831.     not running AmigaDOS will think the disk is UnValidated and load the
  832.     virus. It will also change DATA blocks so DOS does not know them
  833.     unless the virus is running. When the virus is triggered it will wipe
  834.     out the whole disk and bring up a Requester telling you it is the
  835.     SADDAM virus.
  836.  
  837. CCCP:
  838.     This a combination Bootblock and file virus.  It changes itself so
  839.     that it will write to the BootBlock and to random files on the disk.
  840.     The only way to find it on disk is to scan the whole disk.
  841.  
  842. DISASTER MASTER 2:
  843.     This is a fairly simple File type virus.  It will write to a disk
  844.     after a warm boot and if there is enough room on the disk will make a
  845.     file called cls in the C: directory and add cls * as the first line 
  846.     in the startup-sequence.  We just clear the RomTag and
  847.     Capture vectors, check the DoIO vector and that's it for memory.  Just
  848.     wipe the file off the disk and warn the User about the 
  849.     startup-sequence.
  850.     
  851. HAWNES:
  852.     A simple file type virus.  It infects the OpenLibrary()
  853.     vector waiting for an opening of intuition.library.  It then patches
  854.     OpenWindow() to it's own routine.  When a window opens it checks the
  855.     startup-sequence and if not already present, copies itself to
  856.     the disk using DOS.  It patched the VertB int and will display
  857.     something after a while.  It will Wipe out a disk after so
  858.     many copies as well.  Simple to remove and alter the first
  859.     line in your startup-sequence which will hold in hex $C0A0E0A0C0.
  860.  
  861. RETURN OF THE LAMER:
  862.     Another file type virus which replaces the Disk-Validator. 
  863.     It uses a RomTag to stay in memory, infects vectors, VertBlank Int,
  864.     trackdisk.device BeginIO(), and another vector in the
  865.     trackdisk.  When the RomTag is called it infects the OpenWindow()
  866.     vector.  Just delete the Disk-Validator and replace it from a
  867.     good disk.  In memory, just restore the vectors and clear the
  868.     RomTag out.
  869.  
  870. TRAVELLING JACK:
  871.     A Link type virus this one installs itself into the internals of
  872.     AmigaDOS taking over the BCPL inner workings. To check in memory we
  873.     have to wind our way thru many vectors and then reinstall the
  874.     original from the virus. To remove from file we just remove the first
  875.     code hunk. Seems to copy itself to each file that has been read but
  876.     not sure on this.
  877.  
  878. LIBERATOR:
  879.     This is a file virus that says it will remove all viruses but is in
  880.     fact a virus itself.  It copies itself to the s/startup-sequence with
  881.     a line that says 'memcheck s'.   You will also find a file
  882.     called .FastDir on the disk.  After a certain count it will
  883.     delete the entire s/startup-sequence and display a message,
  884.     and stop access to the floppy drives and DH0:.  It will also
  885.     stop most virus checking programs by RemTask()ing them. 
  886.     Virus_Checker 5.30 and above is safe from the current version as 
  887.     the Task name has been changed.  Easy to remove, we just
  888.     delete the file.
  889.  
  890. MENEM'S REVENGE:
  891.     This is a Link virus. It starts a Task called a single space. This
  892.     task sole job is to Patch the LoadSeg vector in DOS. It thus
  893.     infects programs that are run. It is triggered thru the Amiga's
  894.     time and will write it's message to files on dh0: and/or df0:
  895.     The message it writes and then displays as an Alert is
  896.  
  897.     Menem's Revenge has arrived
  898.     Argentina still alive
  899.  
  900.     All VC does is Remove the Task and reset the LoadSeg vector.
  901.     It will be removed from files as they are scanned.    
  902.     It adds 3076 bytes to each file it infects.
  903.  
  904.     There are some problems with this virus. It does not know Amiga
  905.     Files very well and will sometimes get it wrong. VC will remove the
  906.     virus okay but the program may still not work due to this.
  907.     Also when the virus is removed from memory the computer may lock-up
  908.     or GURU after a while. This may be due to memory not being freed
  909.     properly when the task is removed.
  910.  
  911. TRABBI:
  912.     Harmless link virus. Will try to link itself into all files it can
  913.     get at. Uses the drive it was started from. Creates a Task that
  914.     will play a tone/music and put up a requester after a delay.
  915.  
  916. METAMORPHOSIS:
  917.     This one is a combination Link/BootBlock virus. It will pick random
  918.     files in the c: directory to infect when every the OldOpenLibrary()
  919.     call is made. It also infects the DoIO() vector and this will write
  920.     the bootblock part of the virus.
  921.  
  922.  
  923. ************************************************************************
  924.                       Virus_Checker Version Notes                      
  925. ************************************************************************
  926.  
  927. 1.0  Was an arp.library version.
  928. 1.1  Was an port to the normal libraries.
  929. 1.2  Had the ByteBandit virus detection added into it.
  930. 1.3  Had detection of the 3 Viruses in memory and removal of them.
  931. 1.4  Added code to detect + remove the Byte Warrior Virus from memory
  932.      and disk.
  933. 1.41 Found a slight bug when using DSM to disassemble this.
  934.      The program was testing low memory instead of a value when
  935.      checking for the Revenge Virus.
  936. 1.42 Changed code to be assembled by the CAPE 68K assembler.
  937.      which is much faster than A68k or Assem. Now also uses base register
  938.      addressing mode for data access.
  939. 1.43 Changed code to cut down executable code.
  940. 2.0  Added Pentagon, System Z, North Star, Obelisk and the
  941.      new IRQ virus which lives in files and not in the Boot Block.
  942. 2.1  Corrected a few little bugs in program.
  943. 3.0  Did a listing of Source code and found many bugs.
  944.      Did a major rewrite to clean it up and saved about 400 bytes.
  945. 3.0  Now checks for these viruses -
  946.      SCA, AEK, Byte Bandit, Byte Warrior, Revenge, Pentagon Circle
  947.      System Z, North Star, Obelisk, Disk-Doktors and the latest IBM
  948.      type virus the IRQ virus.
  949. 3.01 Got a new virus, Lamer Exterminator. Added code to get rid of it.
  950. 3.02 Got a second version of the Lamer Exterminator virus.
  951. 3.03 After many requests decided to add checking of BootGirl
  952.      BootBlocks which were being registered as Non-Standard. It now
  953.      just ignores BootGirl BootBlocks.
  954. 4.00 Updated to make better use of the Stack. Now store all variables
  955.      on the stack for a saving of 124 bytes in the executable.
  956. 4.10 TimeBomb virus added to code.
  957. 4.20 Altered startup code to start a separate process to avoid doing
  958.      a RunBack -2 Virus_Checker.
  959. 4.22 Added Gadaffi virus to checker.
  960. 4.23 Found a potentially Fatal Error in Code when accessing Unit
  961.      Byte off the Stack.
  962. 4.24 Added Graffiti, Ultra Fox, and Phantasmumble Viruses.
  963.      Don't actually have these last 3 viruses so anyone please send them
  964.      to me if you find them. Still looking for the IRQ Virus as well.
  965. 4.25 Added BSG9 virus to code.
  966. 4.26 Changed Error Checking on BSG9 virus a bit.
  967. 4.27 Got the War Hawks virus and added it. Also added V3 of Lamer
  968.      Exterminator virus. Changed checking for BSG9 virus. Now checks
  969.      when disk is inserted into drive.
  970. 4.28 Found I was losing the memory that was used by the program when
  971.      it exited. This was caused by me not UnLoading the Segment used for
  972.      the program. Fixed.
  973. 4.29 Found program got into a continuous loop when there where no RomTags
  974.      present in the system. Fixed.
  975.      Also cut code size down a bit more by combining a few checks.
  976. 4.30 Put further checking in for the BSG9 virus as sometimes the checker
  977.      would not find the file on the disk depending on which directory
  978.      it was in. Put VKill virus checking in.
  979.      Also Ultra Fox and PVLProtector virus checking added.
  980. 4.40 Put in DosSpeed virus and an Unknown virus.It does not have any names
  981.      at all.
  982. 4.41 Stopped Requester that comes up after pulling disk out.
  983. 4.42 Added JITR virus which was sent to me by Jonathan Potter (AUST).
  984. 4.43 Added MicroSystems virus checking to code and BootBlock checking of
  985.      the HCS II, Opapa, BackFlash, and Australian Parasite viruses.
  986. 4.44 Changed code around a bit to get better use of tables and added
  987.      Xeno virus check for Memory only.
  988. 5.00 Changed user interface to give a new look and better messages.
  989. 5.01 Major Bug repaired. V5.00 GURU'ed when checking disk. Worked with
  990.      68020 CPU but failed on standard Amigas due to a bad address.
  991. 5.02 Was not checking startup-sequence properly when disk was put in 
  992.      3 1/2" drive when a filename was given as C:SetCPU or something like
  993.      that. Came up with a strange filename not being checked. Fixed.
  994.      Added second version of Byte Bandit Virus, Someone hacked it.
  995.      Added code to remove Xeno virus from files.
  996. 5.03 Slight bug corrected in code.
  997. 5.04 Have changed this from PD to Freely Redistributable after an offer
  998.      from someone to sell Virus_Checker. I feel this still needs to be
  999.      at minimal (copying charge) or no charge to be effective.
  1000.      Also cleaned up the code a bit. This may introduce new bugs so
  1001.      please tell me about them if you find them
  1002.      Added checking of IRQ virus when checking for Xeno files on disk.
  1003.      As the file is in the buffer already this adds very little extra
  1004.      time to the check. And better safe than sorry.
  1005. 5.05 Changed text when Xeno Virus found after a program has been run
  1006.      to warn that the program just run may be the culprit.
  1007. 5.06 Added 16 Bit crew Virus, New Alien Beat Virus, Digital Emotions
  1008.      virus, Graffiti Virus, two new versions of the Byte Bandit virus,
  1009.      ScarFace virus, Turk virus, Joshua virus.
  1010.      Also a little bug when used with NTSC machines. You could not display
  1011.      the Boot Block Sectors. Now Startup alters for which machine it is
  1012.      on. The Startup code is only used once and then the memory for it
  1013.      is freed.
  1014. 5.07 Added better Error messages when an error occurs with files.
  1015.      It will now say File protected from deletion when the file is
  1016.      protected instead of just saying could not open file.
  1017.      Added Butonic virus to checker.
  1018. 5.08 Added Centurions virus to checker.
  1019. 5.09 Got Aids virus but this is a mutant VKill virus and is found already.
  1020.      Added Coders nightmare virus to checker.
  1021.      Added Forpib, GX Team, Gremlins, and Kauki Virus.
  1022.      Added Centurions and Butonic virus check when scanning disk.
  1023. 5.10 Finally got IRQ virus and corrected a few bugs in its code.
  1024.      Added Target, Clist, Abraham, and FAST virus. This FAST virus is
  1025.      supposed to be from the Federation Against Software Theft. If it is,
  1026.      then they are just as big arseholes as the pirates themselves.
  1027.      Added Tick virus.
  1028.      Added control-c, control-d to multiscan pass so as to stop the scan
  1029.      if you got the wrong directory or drive.
  1030. 5.11 Slight bug in removing BSG9 virus if virus not in devs: directory.
  1031.      Also was picking up some game files as Butonic virus.
  1032. 5.12 Virus_Checker was finding WB2.0 reboot code as the HCS II virus.
  1033.      This code may not be in the final release but it is at the moment.
  1034.      Also SetPatch code moved a bit. Seems to be the same but different.
  1035. 5.13 Added a Brain File so that you can remember the BootBlocks that
  1036.      You want to. Games etc.
  1037.      No new viruses added.
  1038. 5.14 Added a feature to allow checking for link viruses on startup
  1039.      eg. virus_checker dh0: will check dh0: before carrying on as usual.
  1040. 5.15 Slight bug found with brain file.
  1041. 5.16 ULDV8 virus added. Uses VertB int and RomTag. Very Tame virus.
  1042.      Also fixed up bugs when using Enforcer. Showed up some reads to
  1043.      non-existent memory.
  1044. 5.17 Added OP1 virus. Seemed to confuse VC into think it had a standard
  1045.      Boot block unless write protected.
  1046. 5.18 Had to add extra checking for IRQ virus as it found a program that
  1047.      matched IRQ and VC crashed trying to remove the IRQ virus which
  1048.      wasn't there.
  1049. 5.19 Added a much asked for feature so that you can tell VC where to put
  1050.      its window.
  1051. 5.20 Added a width parameter as well. Also added 1 new virus called the
  1052.      SADDAM virus. This virus lives as the Disk-Validator and can infect
  1053.      an Amiga simply by putting a disk in the drive.
  1054. 5.21 Added the CCCP virus to the checker.
  1055. 5.22 Added another version of the Joshua virus. Also fixed bug that occurred
  1056.      when checking for file viruses and a name was in the File Header.
  1057.      Added -q option to make VC check and then quit.
  1058. 5.23 Added ARexx port to Checker. Will Take commands via Arexx. See info
  1059.      above.
  1060.      Added Disaster Master Virus 2, another file type virus.
  1061. 5.24 Added checking memory for Australian Parasite virus, added BootBlock
  1062.      viruses:- BlowJob ,Butonic-Bahan, Byte Voyager I, Byte Voyager II,
  1063.      Destructor, DiskGuard, Fast1, ByteWarrior FastLoader (not really a
  1064.      virus), FICA, Mad II, Hilly, Changed OP1 virus to real name (Joshua),
  1065.      Changed Tick virus to real name (Julie), Another version of Lamer
  1066.      Exterminator, MegaMaster, Paradox, Saddam Hussein (Paradox copy),
  1067.      Termigator, SuperBoy, UltraFox, Vermin viruses.
  1068.      Another version of the BSG9 file virus was found so I changed the
  1069.      checking to find both versions.
  1070.      Added second version of Butonics File virus, added Hawnes file virus.
  1071.      Added another version of the BSG9 virus and Return Lamer File virus.
  1072.      Did a big rewrite of the checking for file viruses. Now reads file
  1073.      once and scans a table of data. Will do the same with Link viruses
  1074.      later.
  1075. 5.25 VC was finding BootMenu as the Destructor virus. Changed scanning of
  1076.      startup-sequence so disks with the cmd sys:c/command would have the
  1077.      sys: stripped off them. VC could not find these before.
  1078.      Fixed bug which sometimes screwed the virus name reported in the
  1079.      requester. 1 BB virus added.
  1080.      Changed name of DOSSPEED virus to its real name. Revenge Lamer Ext.
  1081. 5.26 Fixed bug that was shown when disk in df1: had a startup-sequence
  1082.      entry that said df0:filename. Tried to access df0: when no disk in
  1083.      drive.
  1084.      Added  Turk Virus file carrier. This was a file that carried to Boot
  1085.      Block virus Turk.
  1086.      Added a logic bomb file virus. This would wipe out a floppy after the
  1087.      the file had been run so many times.
  1088.      Added about 10 new BootBlock viruses.
  1089. 5.30 Fixed bug that showed up as DF0:2has... and no learn gadget on display.
  1090.      Added -n option to make VC window 1x1 pixel/backdrop effectively no
  1091.      window.
  1092.      Also added keys to VC. Press 's' key to start Disk Scan (same as right
  1093.      mouse button), 'm' to do a memory check.
  1094.      Added a Lamer TimeBomb Virus, EMWurm logic bomb, and another version
  1095.      of the Travelling Jack virus.
  1096.      FixSaddam code added to Checker instead of a seperate program
  1097. 5.31 Small problem with startup from Workbench corrected.
  1098. 5.32 Fixes a major bug in the FixSaddam code. It Guru'ed under 68000
  1099.      sometimes and never fixed the Checksums properly.
  1100. 5.33 Released 6 November 1991.
  1101.      WB2.0 BootBlock added to code.
  1102.      True no window option added for those users of WB2.0.
  1103.      Added liberator virus and fixed slight bug with Saddam virus,did not
  1104.      reset TD BeginIo Close vectors.
  1105. 5.34 Increased stack size to 4000 bytes as it was crashing when used with
  1106.      PowerPacker Patcher.
  1107.      Added Hackers Ethic BB virus
  1108.      Little problem with the CTRL-C and CTRL-D when used in FixSaddam mode
  1109. 5.35 Released 21 November 1991
  1110.      Added support for the asl.library FileRequester when running under WB2
  1111.      When you select scan disk you can now select Use Requester gadget and
  1112.      this will bring up the asl FileRequester
  1113. 5.36 Released 23 November 1991
  1114.      Added better handling of Proportional fonts. Requesters look much
  1115.      better now
  1116. 5.37 Released 22 December 1991
  1117.      When scanning the disk for Saddam virus damage and the disk is
  1118.      unvalidated, VC will change the disk so that it looks validated.
  1119.      VC will not validate the disk but will make AmigaDOS think it is.
  1120.      VC will warn you when it does this so you can check the disk with a
  1121.      program such as FixDisk, Quarterbacktools or (God help me) DiskDoctor.
  1122.      Small bug in ARexx interface. If you used OPTIONS RESULTS then VC
  1123.      did not recognize the command.
  1124.      Added WB2.0 ExAll() code for Link/File scan. This fixes the bug with
  1125.      RAM: and deleting files while scanning. Only works with WB2.
  1126.      Using WB2 and ExAll() is alot faster than WB1.3. A test on my DH0:
  1127.      showed WB1.3 took 1 minute 28 seconds while WB2 took 1 minute. This 
  1128.      was on 531 files in about 12 directories.
  1129.      Found furthur bug in Requester with Fonts in WB2.04. Window opens up
  1130.      with normal default font and not what was set. Now do a SetFont() so
  1131.      I know what I am getting. Real big fonts eg 24 point still seem to
  1132.      muck up placement of the gadgets but at least it stills readable.
  1133.      Added menus to VC window. This means right mouse button for Disk Scan
  1134.      will no longer work.
  1135.      Bug found in shutdown code. If you pressed the right mouse button
  1136.      after clicking on the close gadget then VC would GURU.
  1137. 5.38 Released 15 January 1992
  1138.      Started adding options screen to VC under WB2.0
  1139.      Configure file is added as S:VCConfig.  Set using options screen under
  1140.      WB2 but under 1.3 you will have to edit by using a binary file editor
  1141.      or the AREXX commands.
  1142.      Added Exec DoIO and Trackdisk.device beginio to vector scan. If these
  1143.      change VC will warn you.
  1144.      Small bug, when you removed disk while scanning it.  WB2 would recover
  1145.      but 1.3 started putting out rubbish.
  1146.      Added 2 versions of Byte Parasite File Virus, another Lamer Trojen,
  1147.      Freedom file virus,
  1148.      Added BootBlock viruses, Dotty, another Mad version, Fast Eddie,
  1149.      French - Kiss, NastyNasty, TriSector, Taipan, Many other new BootBlock
  1150.      viruses but these are all just mutants of other viruses (Messages changed)
  1151. 5.39 Released 19 January 1992
  1152.      Small bug with WB2.0 screens and Requester.  If you shanghai'ed a
  1153.      screen VC put the requester on the right screen but still poped the
  1154.      Workbench screen to the front.
  1155.      VC now uses less CPU time but still scans memory every 2-4 seconds.
  1156.      Bug in Workbench startup code.  Guru'ed every time.  That is why this
  1157.      release exists
  1158. 5.40 Released 22 January 1992
  1159.      Bug in code to shut down an already running Virus_Checker.  Ignored
  1160.      the kill message totally.  Also Bug in Wb2.0 interface when doing a
  1161.      Virus_Checker -u and then clicking on the USE gadget.
  1162. 6.00 Released 3 February 1992
  1163.      New Workbench 2.0 interface added and hotkey support put in.
  1164.      VC now supports the -l and -t commands again.  Don't know why they
  1165.      stopped working actually.
  1166.      Bug With Screen title.  When used with 2.0 Workbench and no shell,
  1167.      screen flashed allsorts of colors.  Have removed the Screen Title from
  1168.      VC.  Will do it a different way later on.
  1169.      Bug in checking of BootBlocks.  Was not getting error properly from BB
  1170.      read.  Thus if an error occured VC would use the Data from the last BB.
  1171.      Hopefully this problem is now gone.
  1172. 6.01 Released 24 February 1992
  1173.      Added second row of drive gadgets to Interface Window. These will
  1174.      check all files automatically when disk is inserted.
  1175.      Changed way I disabled the gadgets when VC is busy with scanning. Now
  1176.      uses a Request() to disable them.
  1177.      Bug in VC Requester when it can't remove a link virus due to problems
  1178.      with the file. The Requester it put up could not be read as it was all
  1179.      squashed up.
  1180.      Added Intuition EasyRequester when under WB2.0 and just a normal
  1181.      requester needed.
  1182.      Small bug in checking files for link viruses. If file was corrupted in
  1183.      a certain way VC got into a loop it could not get out off. Have put in
  1184.      bounds checking to stop it reading outside it's buffer.
  1185.      It seems the StayResident bit did not work. Have it fixed now.
  1186.      Added Icon support. You can now configure VC via the icon if started
  1187.      from Workbench and CLI. (see THE WORKBENCH STARTUP:)
  1188.      Finally found the trouble with the backdrop option. When used under
  1189.      WB2.0 the window will get hidden under the screens title bar.
  1190.      Found the trouble with VC not letting computer change Font or
  1191.      screenmode and fixed it.
  1192.      Added -i option to cmd line so that VC won't put up a requester saying
  1193.      it could not read the bootblock if there was an error.
  1194.      Added CHECKFILE to arexx side for BBS use. This will take a file,
  1195.      check and remove any viruses found. It will then return a result to
  1196.      the calling program saying file was infected.
  1197. 6.02 Bogus version around so I skipped this one
  1198. 6.03 Released 30 March 1992
  1199.      Forgot to free up the VisualInfo when VC opened it's window.
  1200.      Didn't seem to make much difference. Maybe lost a few bytes of memory
  1201.      Gave up on using Exit() to end Process after warnings in new AmigaDOS
  1202.      manual.
  1203.      Small bug in WarmCapture checking code. If you canceled the requester
  1204.      VC just kept asking you if you wanted to clear it.
  1205.      New version of Macro68 with it's new Optimization saved about 500
  1206.      bytes of Memory. Also Sped up code quite a bit.
  1207.      Added a new window that comes up during file scan. If any Viruses are
  1208.      found then the window will wait for you to click on a gadget to continue
  1209.      Added a new feature. Under WB2 you can VC to watch the s:startup-sequence
  1210.      for any changes. VC will warn you when this happens.
  1211.      Redefined default hotkey as Left-Amiga Shift Del as the previous one
  1212.      clashed with CygnusEd Write function.
  1213.      FileName buffer was a bit too small. Some people must have really long
  1214.      directory/filenames.
  1215. 6.04 Released 8 April 1992
  1216.      Added Menem's Revenge Virus. Sent to me from the US it was spreading
  1217.      fast so I thought I had better get this out.
  1218.      See virus notes on what it does and some bugs.
  1219. 6.05 Released 12 May 1992
  1220.      As WB2.0 will not allow Virus_Checker to read a file that is read
  1221.      protected I have put in some error checking. When doing a directory
  1222.      scan VC will warn you if the file is Read-Protected.
  1223.      Small mistake in the WATCHSS from the workbench Start. Would not work
  1224.      due to a spelling mistake on my part
  1225.      Added CheckBootBlock\dfx: command to ARexx interface to check
  1226.      Bootblocks from scripts.
  1227.      Received Hacked version of Saddam Virus. Someone changed IRAK to LAME
  1228.      in code. Small change to VC to change these blocks back to normal
  1229.      Added Trabbi virus. Harmless link virus.
  1230.      Small bug in Disk Scan code when scanning single file. Called
  1231.      AllocMem() with a zero size.
  1232.      Added another version of SCA virus. This one just puts up a screen, no
  1233.      copying to other disks
  1234.      Added Bootblock viruses Triplex, Virus_V1_(Wieder_da), another version
  1235.      of Northstar, Sachsen, GeneStealer, Exterminator, and MG.
  1236.      Added Metamorphosis virus, this one is a link/BB virus
  1237. ************************************************************************
  1238.